#include "CommonFunctions.h"

#define NUMBER_ELEMENTS 10


void findMissingNumbersBetweenTwoIndexes(int arr[], int start, int finish, int m, int *missing);
void missingNumbers(vector<int> v, int s, int e, int m, int offset, vector<int> *missing);



bool possibleReachLastElement(int * arrJumps, int size);
void findMinimumJumpsToEnd(int *arrJumps, int size, int *minJumpsToEnd, int *sizeJumps);
void moveNonZeroToLeft(int *arr, int size);

class Graph;
void printOrder(string words[], int n, int alpha);

string pattern ( int n );
string patternUtil( int n, string sequence );
string lookAndSaySequence(unsigned int _n);

void perfectSquares( int n );
int twoSumVersion1( int arr[], int n, int sum);
void twoSumVersion2( int arr[], int n, int sum);


int threeSumVersion(int arr[], int n, int sum);
bool subSetProblem ( int arr[], int n, int sum);

bool subSetSumProblem(int arr[], int n, int sum);
int knapSack(int W, int wt[], int val[], int n);


bool isPalindrome(string s);
